#ifndef __PID_H_
#define __PID_H_

#include "main.h"

typedef struct
{
    float Actual;       //实际值
    float Target;       //设定目标值
    float Out;          //输出值
    float Now_Err;      //当前误差
    float Last_Err;     //前一次误差
    float Inter_Err;    //累计误差
    float Kp,Ki,Kd;
}PIDW_Type;             //位置式PID结构体变量


typedef struct
{
    float Actual;       //实际值
    float Target;       //设定目标值
    float Out;          //输出值
    float Now_Err;      //当前误差
    float Last_Err;     //前一次误差
    float LastTwo_Err;  //上上次误差
    float Inter_Err;    //累计误差
    float Kp,Ki,Kd;
}PIDZ_Type;             //增量式PID结构体变量


extern PIDW_Type PIDw_Left_Motor;
extern PIDW_Type PIDw_Right_Motor;

extern PIDZ_Type PIDz_Left_Motor;
extern PIDZ_Type PIDz_Right_Motor;

void PIDW_Calculate(PIDW_Type *PIDw,float Actual_Value);//位置式PID计算 
void PIDZ_Calculate(PIDZ_Type *PIDz,float Actual_Value);//增量式PID计算

#endif


